import db from '../mongo'
import { parseTime } from '../middleware/comFunc/formatTime'
const Schema = db.Schema;
let articleSchema = db.Schema({
    title: {                             // 标题
      type: String,
      required: true,
    },
    desc: String,                        // 描述
    cover: String,                       // 封面
    markdown: {                          // 内容
      type: String,
      required: true
    },
    html: String,                        // HTML内容
    toc: Array,                          // TOC
    // sort: {                             // 分类
    //   type: Schema.Types.ObjectId,
    //   ref: 'Sort',
    //   required: true
    // },
    // tags: [{                              // 标签
    //   type: Schema.Types.ObjectId,
    //   ref: 'Tag'
    // }],
    sort: {},
    tags: [],
    state: {                             // 状态（‘草稿‘或者’发布‘）
      type: String,
      default: 'draft',
      set: function (state) {
        return ['draft', 'publish'].indexOf(state) > -1 ? state : 'draft'
      }
    },
    readingQuantity: {                   // 阅读量
      type: Number,
      default: 0,
    },
    love: {                              // 点赞量
      type: Number,
      default: 0,
    },
    source: {                              // 来源
      type: Number,
      default: 0,
    },
    createAt: {                          // 创建日期
      type: String,
      default: ''
    },
    updateAt: {                          // 更新日期
      type: String,
      default: ''
    },
    author: {}
    // author: {                            // 作者
    //   type: Schema.Types.ObjectId,
    //   ref: 'User',
    //   required: true
    // }
})

articleSchema.pre('save', function (next) {
  if (this.isNew) {
    this.createAt = this.updateAt = parseTime(Date.now())
  } else {
    this.updateAt = Date.now()
  }
  next()
})
articleSchema.pre('update', function (next) {
   this.update({},{ $set: { updateAt: parseTime(Date.now()) } })
   next()
})
export default db.model('article', articleSchema);
